1. Field of the Invention
The present invention relates to an improved system for deinterleaving and error correction of blocks of data each consisting of symbols which are successively interleaved in an error correction code symbol array. In particular, the invention relates to a system whereby the maximum number of errors that can be detected in a data block can be increased over the prior art, with a simple circuit arrangement.
2. Prior Art Technology
To permit partial writing or erasure of an optical recording disk, guide tracks are provided on the disk. These guide tracks are detected optically, and are formed concentrically or in a spiral configuration. In addition, each recording track of the disk is divided into a plurality of sectors, each having a data block recorded therein, with data recording and playback being executed in units of these sectors. Each sector includes a sector ID (i.e. identifier) portion which contains track address and sector address information, and a data field in which is recorded the message data. Parity data are added to the message data contained in the data field, for use in error detection and correction. In addition, immediately before the message data that are recorded in the data field, a sync pull-in signal portion is usually inserted, for use in achieving pull-in of a PLL (phase locked loop) that is utilized at the time of playback in recovering the clock signal component of the recorded data. A data mark is also inserted before the data field, for indicating the leading portion of the message data. In addition, resynchronizing signal portions are inserted at periodic intervals, for use in holding recovered clock signal produced from the PLL of the playback system locked in frequency and phase with the clock signal component of the recorded data. It is now common practice to also encode the data prior to recording, using some form of error correction code which permits correction during playback of errors which occur in the playback signal. Usually, a Reed-Solomon error correction code with block interleaving is utilized, whereby prior to recording, all of the symbols (i.e. bytes) of data to be recorded in one sector are arranged in a memory in a rectangular array of memory addresses, and parity data are derived for each of a plurality of sets of bytes of the data and added to these sets of bytes to form a set of code words, with the bytes of these code words being mutually interleaved with respect to the sequence in which the bytes are recorded. At the time of playback, a reverse process, i.e. deinterleaving is executed, and the parity data are utilized to detect whether errors are contained in the playback signal (i.e. by deriving an error syndrome from the code words in the playback data), and any errors are corrected. FIG. 9 shows an example of such an interleaved data configuration for one sector, with added parity information, prior to recording the data. In FIG. 9, numeral 1 denotes the message data, which consists of 1024 data symbols designated as D0 to D1023 respectively (each symbol consisting of one 8-bit byte). Numeral 2 denotes control data and a CRCC (cyclic redundancy check code) consisting of a total of 16 symbols designated as C0 to C15 respectively. C0 to C11 are the control data, and C12 to C15 are the CRCC. Numeral 3 denotes a set of parity symbols P0 to P127, which are utilized at the time of playback for error detection and correction, for computations based on an error correction code generating polynomial that was utilized in generating the parity data prior to recording, as described above.
Before the successive bits of the data obtained by the encoding process described above are recorded on an optical recording disk, they are usually modulated to be converted to 2-7 RLL (run length limited) code.
In FIG. 9, numeral 4 denotes respective resynchronizing signal portions, which are used during playback for synchronizing the recovered clock signal as mentioned above. Prior to recording, each of these resynchronizing portions 4 is converted into a 1-byte bit sequence which violates the of 2-7 RLL code standards, and so can be detected in the playback signal at the time of playback. Numeral 5 denotes the data mark, which also consists of a bit sequence which violates the 2-7 RLL code standards. Numeral 6 denotes the PLL pull-in signal portion, which is used during playback for pull-in of a PLL that generates a recovered clock signal, for use in demodulation, i.e. conversion of the playback signal from 2-7 RLLC form to normal binary code.
With the format of FIG. 9, 4 bytes of CRCC are added to the 1024 bytes of message data and 12 bytes of control data. The message data, CRCC and control data are arranged as shown prior to recording (in a memory) as a rectangular array consisting of 8 rows, each row containing a total of 130 symbols. To this is added, as shown, 8 rows of parity data, each row containing 16 bytes. Each row of the complete array (e.g. the row from D0 to P15) constitutes one code word, so that there are 8 code words (designated as code words 0 to 7 in FIG. 9) per sector in this example. A resynchronizing signal portion RS is inserted once in every 16 bytes of the interleaved recording signal, with each such set of 16 bytes constituting one frame. The data are recorded as successive columns of the array shown in FIG. 9, in the direction indicated by the arrow. That is, first the sync pull-in signal portion 6 is recorded, then the data mark 5 and so on until symbol D7 of the first column, then the next column from top to bottom, and so on. In this way, one-dimensional interleaving of the code word symbols of a sector is executed at the time of recording. Upon playback, such sector data obtained from the playback signal are deinterleaved by being arranged (i.e. in an array of addresses of a memory) in the array format shown in FIG. 9, and error correction is executed based on the contents of each code word.
FIG. 10 shows the format of a bi-level serial playback signal corresponding to one sector, obtained by playback of data which have been recorded with a format of the form in FIG. 9. As shown, the signal format consists of the sector identifier (ID) 8, then the PLL pull-in signal portion (indicated as SYNC) 6, which is followed by the data mark (DM) signal portion 5 (indicating that the leading byte of the message data will immediately follow), then a first portion of the playback data, referred to in the following as a frame (i.e. corresponding to symbols D0 to D7 in FIG. 10, then a resynchronizing signal portion 4, and so. The resynchronizing signal portions 4 thereby occur at fixed intervals in the playback signal, for use in periodically synchronizing the PLL clock recovery circuit of the playback system. The successive frames are designated as F1, F2 and so on.
During recording or playback of an optical recording disk, the sector identifiers 8 of successive sectors are read and compared with a target value of sector identifier, and recording or playback then executed when the target sector is reached. During playback, the level of the playback signal will occasionally drop (i.e. drop-out occurs) due to various factors such as disk surface defects, etc. In the playback system, an envelope detector circuit functions to detect when such drop-out has occurred, and to produce a pulse or a succession of pulses for the duration of the drop-out interval. When a brief-duration drop-out occurs, then one or more symbol errors corresponding to the drop-out interval will occur in the playback signal. If a long-duration drop-out occurs in the playback signal, then the recovered clock signal of the playback system will be disturbed, which may cause an error propogatin phenomenon called "bit slip", whereby all of the symbols within a frame following the portion in which the clock signal is disturbed will be in error. Such a bit slip error condition is indicated by numeral 10. Drop-out can result from various causes, e.g. defects in the optical recording disk material, in the recording film or the protective layers on the disk, dust or scratches on the disk, etc. Since the physical length of one bit as recorded on an optical recording disk track is very short (approx 1 .mu.m), the basic error rate is very poor, e.g. 10.sup.-5 to 10.sup.-6, and long-duration drop-out will frequently occur. There is thus a high probability that irrecoverable errors will result from such long-duration drop-out occurrences. With bit slip, the number of errors which occur within one frame of the playback signal (i.e. between two successive RS signal portions) is large enough to affect the frequency of the PLL circuit which generates the recovered clock signal, causing errors in the operation of the demodulation circuit which converts the playback signal from the recording signal type (e.g. 2-7 RLLC) to normal binary code. As a result, all of the bytes in such a frame, from the point at which bit slip begins, will be in error. Since the recovered clock signal is synchronized by each RS signal portion, and since the end of each RS signal portion of course defines the position of the first bit of the first byte in the succeeding frame, the effects of bit slip are limited to units of frames.
The bit slip phenomenon is illustrated in FIG. 10. In this example, a single error byte or short-duration error burst occurs during a first frame F1 of a block of playback data of a sector. This results in a corresponding number of error bytes in that frame, as indicated by numeral 9. However a long-duration data error burst 10, shown as occurring in the succeeding frame, F2, may result in a momentary disturbance of the recovered clock signal, causing bit slip to occur, so that all of the demodulated data obtained for the remaining portion of frame F3 are in error.
Such bit slip errors present a basic problem for optical recording disk recording. Firstly, error correction of playback data by means of an error correction code scheme can only achieve reliable correction of a certain maximum number of errors in each data block. This maximum number of correctable errors can be increased by increasing the number of parity bytes that are added to the data before recording, however there are practical limitations on the size of the parity data. With magnetic recording systems, long-duration error bursts in the playback signal are relatively uncommon, and so bit slip will be correspondingly infrequent, so reliable error correction can be achieved. However in the case of optical recording disk recording, due to the small physical size of each data bit as represented on the recording surface, even small particles of dust on the disk surface, for example, can result in long error bursts in the playback signal. Thus, bit slip can occur a number of times within the playback data obtained for one sector, which can cause the number of error bytes in that data to exceed the number that can be reliably corrected based on the parity data. Irrecoverable errors can thereby remain after error correction processing of data of a sector has been completed.